iT邦幫忙

2024 iThome 鐵人賽

DAY 18
1

經過了這幾天,
大家應該都會使用Pandas來對資料進行判斷了,
而今天要延續先前的知識,
將判斷的條件符合的資料取出,
這裡也會簡單複習一下前幾天的東西。

範例

首先,先建立一個DataFrame結構的資料,
或是有匯入的資料轉成DataFrame結構也行。
這邊為了方便對照,先印出完整的資料來看。

data = {
    'MemberId': ['001', '002', '003', '004', '005', '006', '007', '008', '009', '010'],
    'Name': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'],
    'Height': [175, 153, 164, 168, 158, 189, 171, 166, 176, 170],
    'Weight': [80, 45, 75, 52, 68, 78, 87, 85, 67, 60],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Washington', 'New York', 'Washington', 'Utah','Washington', 'Chicago', 'New York']
}
df = pd.DataFrame(data)
print(df)

印出資料如下

  MemberId Name  Height  Weight         City
0      001    A     175      80     New York
1      002    B     153      45  Los Angeles
2      003    C     164      75      Chicago
3      004    D     168      52   Washington
4      005    E     158      68     New York
5      006    F     189      78   Washington
6      007    G     171      87         Utah
7      008    H     166      85   Washington
8      009    I     176      67      Chicago
9      010    J     170      60     New York
以條件判斷取出對應資料

前面學會了很多判斷式回傳boolean array
現在要將資料以條件判斷取出對應資料,
當取得判斷為True的資料就會被列出,
語法就是df[boolean array]
無論單一或多重條件皆是如此。

單一條件

這邊先來簡單複習一下,
語法df['City'] == 'Chicago'可以判斷City是否為Chicago,
如此一來便可取得各筆資料對應的布林值陣列(boolean array),
而這邊再將資料做讀取並以上面判斷好的布林值陣列帶入,
取得判斷為True的資料,
最後印出回傳結果。

print(df[df['City'] == 'Chicago'])

印出資料如下,
資料結構為DataFrame

  MemberId Name  Height  Weight     City
2      003    C     164      75  Chicago
8      009    I     176      67  Chicago

從過去(DAY14 Pandas以單一條件判斷資料)的範例可以得知
index為2和8的資料的布林值為True,
所以在這可看到列出了index為2和8的資料。

多重條件

這邊先來簡單複習一下,
語法(df['Height'] >= 160) & (df['Weight'] >= 70)可以判斷
Height是否大於等於160且Weight是否大於等於70的資料,
取得判斷為True的資料,
最後印出回傳結果。

print(df[(df['Height'] >= 160) & (df['Weight'] >= 70)])

印出資料如下,
資料結構為DataFrame

  MemberId Name  Height  Weight        City
0      001    A     175      80    New York
2      003    C     164      75     Chicago
5      006    F     189      78  Washington
6      007    G     171      87        Utah
7      008    H     166      85  Washington

從過去(DAY15 Pandas以多重條件判斷資料part1)的範例可以得知布林值為True的資料,
對照可驗證列出資料的正確性。

今日結語

經過這幾天學會了以單一和多個條件判斷取出對應資料,
這些判斷在整理資料時都是免不了必須用到的,
所以大家要好好習慣這些判斷式呢。


上一篇
DAY17 Pandas以多重條件判斷資料part3 (isin語法)
下一篇
DAY19 Pandas使用insert增加欄位
系列文
走在Pandas資料操縱與分析的路上持續前進30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言